1. Field of the Invention
The present invention relates generally to wireless communication devices. Specifically, the present invention relates to the detection and correction of errors in received signals.
2. Brief Description of the Related Art
In block coding for wireless digital communications, a transmitter transmits information bits with parity check bits added to the end of the information bits. Information bits may include control information (including initialization, synchronization, etc.), data, or voice message. The information bits and parity check bits together make up a code word or vector. At the receiving end, a receiver decodes the received code words and uses the parity check bits to detect errors in the received code word. Cyclic coding is one form of block coding. Shortened cyclic coding is an abbreviated form of cyclic coding. See Error Control Coding by Shu Lin et al, Prentice-Hall, Inc., 1983, page 116. Cyclic Redundancy Check (CRC) is one type of shortened cyclic coding.
Any decoder that tries to detect errors has a probability of misdetecting errors. As seen by the receiver, xe2x80x98misdetectionxe2x80x99 includes at least two situations. If a frame contains an error and the decoder fails to detect this error (i.e. lets the frame pass for further processing as error-free), then there is a misdetection. If the decoder detects an error and miscorrects the error, then this is also a misdetection because the decoder xe2x80x98thinksxe2x80x99 it made a proper correction. Any decoder that attempts to correct errors increases the probability of misdetecting frame errors. This can degrade system performance.
The present invention relates to a method and apparatus for detecting and correcting errors using CRC. The present invention is preferably used in communication systems that have error detection but no error correction capabilities. For example, the Personal Handy Phone System (PHS), a Japanese communication standard, has error detection but no error correction capability. See Personal Handy Phone System ARIB Standard, Version 2, RCR STD-28 by Association of Radio Industries and Businesses. Other relatively simple systems that have no error correction capability include the Digital European Cordless Telephone (DECT) system, Personal Access Communication System (PACS) (a United States standard) and some digital cordless phones. The present invention is suited for a system that uses a one-bit-to-one-symbol modulation, such as Differential Binary Phase Shift Keying (DBPSK), or a two-bit-to-one-symbol modulation, such as Differential Quadrature Phase Shift Keying (DQPSK) or xcfx80/4 Differential QPSK (xcfx80/4 DQPSK)), with either differential or coherent demodulation.
Currently, CRC is used to detect random or burst errors in DBPSK, DQPSK and xcfx80/4 DQPSK communication systems with either differential or coherent demodulation. CRC possesses a high degree of error detection capability compared to other forms of coding. In relatively simple systems like PHS, if the decoder detects an error, the decoder erases the information burst (e.g. for speech bits) or requests the transmitter to retransmit the same burst (e.g. for data bits).
According to open literature, conventional CRC with a minimum distance of four can be used to correct a single-bit or a double-adjacent-bit error pattern in a single data frame. But if there are more errors than a single-bit or a double-adjacent-bit error pattern in a single frame, then CRC does not guarantee successful error correction. Once CRC is used to correct single-bit and double-adjacent bit errors, CRC quickly loses its high error detection capability. Current, practical communication systems do not use CRC to correct errors because correcting a single-bit or a double-adjacent-bit error pattern in a control or data frame does not justify the increased probability of misdetection associated with error correction. In other words, it is dangerous to sacrifice CRC""s high error detection capability, particularly for control bursts, to correct limited error patterns. Control bursts require perfect or near-perfect transmission. As a result, where error correction is needed, a more sophisticated error correction system is often used, such as Reed-Soloman and convolutional coding. One problem with this type of error correction is that it is incompatible with the simpler system referenced above and it would add to the cost of the equipment.
Another reason why practical communication systems do not use CRC to correct errors is that error correction becomes counterproductive when the channel is noisy, which causes multiple transmission errors in each frame or burst of information. Error correction using CRC in this case would increase the probability of creating more errors. Current industry standards and systems teach away from using CRC for error correction. Mobile Communications Engineering by William C. Y. Lee, 2d ed, McGraw-Hill Companies, Inc., 1998, page 457 (xe2x80x9cThe cyclic redundancy check is used to detect the error onlyxe2x80x9d).
The present invention recognizes that any modulation system that converts two bits to one symbol using differential encoding will cause double-adjacent symbol errors when each symbol is converted to two bits at the demodulation (decoding) end. The present invention further recognizes that these double-adjacent symbol errors correspond to a limited number of four-bit error patterns, and that these four-bit error patterns can be corrected. The present invention uses CRC to correct these four-bit error patterns without adding significant hardware and software. This is particularly advantageous in systems that have little or no error correction capabilities.
By using CRC to correct errors, the present invention increases throughput (amount of information bits received and actually used) compared to current systems because the decoder in the present invention does not simply erase entire information bursts or requests the transmitter to retransmit the information bursts. The decoder in the present invention corrects errors in information bursts using CRC. For example, if 10 information bursts are sent in a system with no error correction and 3 out of 10 information bursts contain errors, then those 3 information bursts must be erased or retransmitted. Erasing information bits decreases throughput and degrades performance. Retransmission takes additional time, which also degrades performance. But 2 out of 3 of the information bursts with errors may contain error patterns which are correctable by the present invention. Thus, the present invention increases throughput without adding more redundant check bits to the information burst or adding significantly more circuitry to the decoder.
In addition, the present invention recognizes that different types of information bursts (data, voice or control) in different channel conditions need different degrees of error detection capability. For example, high error detection is required for all control bursts. Because of the importance of a control burst, it has a very low tolerance for errors. Using CRC to correct errors may create additional errors if the channel quality is particularly poor. Thus, the use of CRC to correct errors should be done only when the signal is of a very high quality. In contrast, routine data bursts, representing voice data for example, can tolerate some additional errors which a decoder might make if it uses CRC to correct errors where the signal quality is somewhat lower. In one preferred embodiment of the present invention, error correction is turned on for voice bursts and is turned off for control bursts.
Similarly, the present invention recognizes that when the channel quality is poor (noisy channels), error correction is likely to create more errors and misdetections, and thus deteriorate performance. But when channel quality is relatively good, error correction using CRC can significantly improve performance in systems that have little or no error correction capability.
The present invention recognizes that a decoder may turn error correction using CRC on and off depending on the type of burst and channel quality. This makes the present invention more efficient when compared to current systems using a standard length CRC solely for error detection for both data and control bursts. For example, for a system that uses a standard 16-bit CRC, the present invention uses all 16 bits for both error detection and error correction. The amount of error correction varies, depending on the channel quality and the type of burst. In contrast, other systems use the same standard 16-bit CRC only for error detection, regardless of channel quality and type of burst. The present invention makes better use of the information provided by CRC and accomplishes much more with the same number of CRC bits, which in this example is 16.
The present invention recognizes that the accuracy of channel quality estimation is important to apply CRC for error correction. The present invention uses a composite channel quality estimation which combines different channel quality estimates from various estimating methods.
The present invention corrects random errors due to non-perfect timing effects in fading channels and resolves the error floor issue due to non-perfect radio frequency (RF) circuits. The present invention also minimizes the processing delay due to error corrections, minimizes the amount of added hardware needed to detect and correct errors without losing any bandwidth efficiency, and controls the misdetection probability of frame errors.
Differential coding, cyclic codes and CRC are explained in further detail in Digital Communications by John G. Prokais, 3d ed, McGraw-Hill Companies, Inc., 1995, Error Control Coding by Shu Lin et al, Prentice-Hall, Inc., 1983, and Mobile Communications Engineering by William C. Y. Lee, 2d ed, McGraw-Hill Companies, Inc., 1998, respectively, which are hereby incorporated herein by reference.